#include"process.h"

#define NUM 101
#define STYLE '='

//void process_v1()
//{
//    // 定义进度条数组
//    char buffer[NUM];
//    memset(buffer, 0, sizeof(buffer));  // 初始化为 0，确保没有垃圾字符
//
//    // 定义光标符号
//    const char* label = "|/-\\";
//    int len = strlen(label);  // 获取光标符号的长度
//
//    int cnt = 0;
//    while (cnt <= 100)
//    {
//        // 打印进度条
//        printf("[%-100s][%d%%][%c]\r", buffer, cnt, label[cnt % len]);
//        fflush(stdout);  // 刷新输出缓冲区
//
//        // 更新进度条字符
//        buffer[cnt] = STYLE;
//        cnt++;
//
//        // 模拟进度
//        usleep(50000);  // 睡眠 50 毫秒
//    }
//    printf("\n");/
//}

void FlushProcess(double total, double current)
{
    char buffer[NUM];
    memset(buffer, 0, sizeof(buffer));
    const char* lable="/|-\\";
    int len = strlen(lable);
    static int cnt = 0;
    //不需要自己循环, 填充#
    int num = (int)(current * 100 /total);
    int i = 0;
    for(; i < num; i++)
    {
        buffer[i] = STYLE;
    }
    double rate = current/total;
    cnt %= len;
    printf("[%-100s][%.1f%%][%c]\r",buffer, rate*100, lable[cnt]);
    cnt++;
    fflush(stdout);
}
